// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

package org.apache.doris.common.util;

import org.junit.Assert;
import org.junit.Test;

public class SymmetricEncryptionTest {

    @Test
    public void test() {
        testEncryptionAndDecryption("123456");
        testEncryptionAndDecryption("1qaz2wsx[poikl;mnb,78k*&");
        testEncryptionAndDecryption("张三的密码");
    }

    private void testEncryptionAndDecryption(String password) {
        byte[] key = SymmetricEncryption.generateKey();
        byte[] iv = SymmetricEncryption.generateIv();
        String passwdEncrypted = SymmetricEncryption.encrypt(password, key, iv);
        String passwdDecrypted = SymmetricEncryption.decrypt(passwdEncrypted, key, iv);
        Assert.assertEquals(password, passwdDecrypted);
    }
}
